There are multiple ways that we can handle the foundations of mathematics, one of which is set theory. Of these, there are even multiple ways to handle the foundations of set theory.
One such foundation is ZFC. The axioms of ZFC define objects called "sets", and tell us how sets should behave. For instance, given any two sets $X$ and $Y$, it's an axiom that $X=Y$ if and only if they have the same elements.
An alternative foundation is the elementary theory of the category of sets, often abbreviated ETCS, which axiomatizes the category of sets instead. So a typical axiom of ETCS doesn't say what a set is, but it does say that given two sets $A$ and $B$, there exists a set $A \times B$ which satisfies the universal property of the product. Contrast this to ZFC, which also thinks that the product exists, but where we must "build it by hand".
If you're a comfortable programmer, you can think about ETCS as describing an interface for working with sets, while ZFC merely describes the objects themselves. You then have to choose an implementation of the interface. For instance, you have to choose a particular set which should represent the product $A \times B$ promised by ETCS.
What's relevant here is that no matter which choice of definition you take for $A \times B$ in your implementation, as long as it's a reasonable definition, you'll still get a category modeling ETCS. In particular, any mathematics which doesn't break the abstraction boundary (to continue to use the programming analogy) will work equally well with either implementation.
Since most mathematics can be done working only in ETCS, this means that we're able to safely ignore the particular implementation details of functions, pairs, etc. As soon as we start asking implementation level details (for instance, what's the rank of a given set) then our implementation might matter, but these are the kinds of questions which are primarily asked by set theorists, who are well equipped to handle the implementation-specific answers they get.
I hope this helps ^_^