Is my boyfriend emotionally abusive?

We’ve been together for 2 years. Often our relationship is great, he shows me lots of affection and is sweet as can be. However, when he’s in a bad mood or whenever we argue, it’s like he becomes a different person. His behavior will range from Mildly upsetting to absolutely abhorrent. For example, several days ago I got upset because he made a joke about me having no Butt. He then proceeded to get mad that I was mad and called me too sensitive. The argument progressed and he called me a c*** (which he’s never done before). I was shocked and called him out and he said after a few minutes of more arguing, that “I apologize but you were pissing me off”. He also calls me b**** and tells me to shut up. He rarely apologizes if he’s mad, and he always blames his behavior on me, I’m always too sensitive or annoying. And mind you, I like to think I’m a very understanding person. I don’t ask for much from him. I’m unsure if this is normal behavior in a relationship because it’s my first one. Most of the time we are great it’s just when he’s in a mood that he becomes this terrible person who insults, gaslights, and belittles me. It’s like he literally has NO empathy or compassion when he gets like that, I could cry my eyes out and no reaction. But then when he’s done being mad, he’s back to being sweet and apologizes. That being said, he has trouble apologizing or accepting he’s wrong, and I believe he might be a narcissist. What should I do? Is this emotional abuse? It doesn’t happen too often but when it does I feel so depressed and horrible I don’t want to feel like this but I do really love him
Is my boyfriend emotionally abusive?
Post Opinion