What is the difference between using emission and bloom effect?
Bloom and emission are two completely different things.  Let's talk about Eevee, since that's what you're probably using (since implementing bloom in Cycles requires the use of compositing, with behavior that depends on the precise way that you implement the bloom.)
Emission just says, write this color to the screen.  That's all.  It doesn't get lighted/shadowed.  It doesn't care about the surface normals.
Now, what happens to the color you tell it to write to the screen depends on your color management settings (and a few other things.)  Let's say you're using a raw color transform.  What happens when you write a color like 2.0, 1.0, 1.0?  Your monitor is designed to only handle colors in the 0,1 range.  So it clamps the output, and even though 2,1,1 is a pink hue, you still get white output.  Because once you clamp the output, you just have 1,1,1 white.
Except, you're unlikely to be using a raw color transform.  Standard, filmic, etc are designed to tone map colors outside of the 0,1 range into colors inside the 0,1 range.  (This comes at the cost of some color fidelity.)  So you're going to see a reduced impact of clamping overbright pixels.  Still some loss of hue.
What's the point of having both emission and base color on a Principled BSDF?  You're just adding the effect of the Principled, a combination of diffuse and specular on default settings, using the base color as the diffuse and the base color's value as the specular, to the effect of emission.  Is that something you should ever do?  You risk losing energy conservation, although that's not an issue with Eevee.  Otherwise, sure.  Think about a very dim lightbulb next to a very bright lightbulb.  The dim light bulb may both be emitting light and reflecting light from its brighter neighbor.
Okay, so then what's bloom?  It's clear that using plain emission, especially given the limits of our monitors, isn't enough to give us the perception of very bright light.  Bloom is designed to give us that perception.  It does it by first drawing the screen, subtracting a grayscale value from each pixel (the &quot;threshold&quot;), then blurring the output, and finally adding that darkened, blurred output back into the original screen.  (Finally, of course, it runs the whole thing through the color transform, in order to get it back into the 0,1 range.)
This creates an aura around bright objects.  Notice also how it interacts with the clamping of colors.  2,1,1 gets clamped to white.  But if it's on a black background, some nearby pixel might get half that color from the blur: 1,0.5,0.5.  So although the emitter gets clamped to white, the nearby pixels appear pink nearby.
It's not necessary to run bloom on your basic screen output, although that's how Eevee was designed to do it.  A common alternative is to render an emission render layer and only bloom emission.  This would make more sense to you once you start implementing bloom using compositing nodes instead of Eevee's out-of-the-box bloom.