A category can be defined as a collection $C$ of arrows $f, g, h, \dots$ and a composition operator $\circ$ such that whenever $f\circ g$ is defined then $f\circ (g\circ h) = (f\circ g) \circ h$, and for all arrows $f \circ g$ there exists a unique map $\text{id}$ such that $f\circ \text{id} = f$ and $\text{id} \circ g = g$.
Define a functor to be a map $F: C \to C'$ that preserves $\circ$, ie. $F(f\circ g) = F(f) \circ F(g)$.
Then doesn't $F$ automatically preserve $\text{id}$ maps since for any $f\circ g$, $\text{id}$ is unique?
No, it's not automatic. For instance, consider the category $C$ with one object $X$ and two arrows $id$ and $f$ with $f\circ f=f$. Then the map $F$ which sends both $f$ and $id$ to $f$ preserves $\circ$, but does not map $id$ to $id$.