first of all- if you’re concerned about performance, creating a bmesh the way you have shown is the opposite of what you want to do. constructing and destroying bmesh objects is pretty costly, which is why you want to create it and keep a reference around until you’re sure you don’t need it anymore. Having said that, to answer your question all you need to do is update the edit mesh with the bmesh data. There is one extra step you’ll want to do, so I’ll save you from running into it and then posting again- but you need to flush the selection once it’s been manually changed like this.
You should consider looking at some of the bmesh examples that ship with blender- most of this stuff is pretty well covered.