There is always that one person who writes that Europe is many countries. Yea, we know. But European countries also collectively represent themselves to the world through EU. Look at how Europe talks about the Greenland issue. It’s always a collective.
I'll try to express this as a programming analogy:
You are correct that to the outside the EU market negotiates as a single entity, like, say, an interface:
interface Market {
interact(string payload)
}
on the inside though you will quickly realize that the payload format is XML in one country, Json in another, a completely custom format in a third. And that's not even talking fields, names, types, semantics etc. Hope this could clarify the confusion.