So let $X, Y$ be two arbritary sets. And let $f: X \to Y$ be a function.
Definition : f is surjective $\Leftrightarrow$ $\forall y\in Y, \exists x \in X, \ \ : \ \ f(x)=y$
Now, I intepret this as: All elements in the codomain get "hit".
Let's consider $A=\{1\}$, $B=\{2,3\}$ and let's map $1\mapsto 2, 1\to 3$. Doesn't this fullfil the definition of surjectivity? If I get the concept of surjectivity right, that shouldn't be possible. So I'm wondering, shouldn't we rather use $\exists !$ in the definition? So we don't hit the same element in $X$ twice?
edit: I also though about, that the definition of a function probably takes care of this. But my definition of a function (total order) also does the same - so I can't see where we actually "limit" this.
Your so-called function is not function, it's just a relation $\{(1,2), (1,3)\}$.
A function $f: X \to Y$ is a relation $R \subseteq X \times Y$ with the property that for all $x$ in $X$ there is a unique $y \in Y$ (denoted $f(x)$) such that $(x,y) \in R$. So there we do have $\exists!$, which might give rise to your question:
$$\forall x \in X: \exists! y \in Y: (x,y) \in f$$
Surjectivity is just that for each $y$ at least one $x$ exists with $y = f(x)$ , but there could be more. E.g. $f:\{1,2,3\}\to \{1,2\}$ given by $f= \{(1,1), (2,2),(3,2)\}$ where every $x$ has a unique $y$ but $y$ has two corresponding $x$.
If we'd demand
$$\forall y: \exists ! x : (x,y) \in f$$
the function would be a bijection, which is a lot stronger.
Your example is a surjective relation, not a surjective function.