Vaskania has done a good job explaining things, but I want to clear some things up.
Booleans can and will add to poly counts as you can see in her example, she has taken a square plane and added a cylinder with sixteen sides, taking the plane from two triangles to sixteen (a polygon always has two triangles even if you can't see them, they're there). But saying all this, booleans are great, I use them all the time for high poly work, they require clean up but they get results quicker than trying to do things manually.
The problem is that they carry a stigma, people saying that they aren't viable or are too messy, and that just boils down to simple ignorance or them just repeating what they've heard without really knowing why. Sure, they can be messy if you don't know what you're doing, so I'd suggest watching some tutorials on them and try to understand maintaining topology, lining edges up with both meshes you want to intersect, it's like a fun little puzzle.
As for doubling your poly count, well in this case it has more than doubled, however, this is a VERY simple model, had she made a weapon of some kind and require a hole like that one, it would not double your poly count, it would only add the required amount of polygons that the intersecting mesh needs, maybe some renegade vertices but that's where the cleanup comes in.
One final thought, don't be too stingy with your polycounts, it's 2016, we've come a long way with 3D art and polycounts aren't too much of a concern anymore, but always be mindful of optimizing areas that don't need geometry (flat surfaces for example), it's good practice, and will give you more geometry to play with else where on your models.
Hope this helps.