The last line is not strictly necessary. Hibernate uses the owner side (the child side in this case) to know if it has to persist the association.
However, it does not care if you initialized the other side, and won't do it for you. So, if this method happens to return the parent to the GUI, for example, the GUI will get a parent without the new child in its list of children. Similarly, it this code snippet is only a small part of a longer transaction, the rest of the code in the transaction won't see the new child in the children list, because you failed to maintain the coherence of the object graph.
So, unless this code is in a facade, and the parent is never used after this code snippet is executed, you should initialize both sides. If you know what you're doing, and you know that the parent will be out of scope, not used and garbage-collected after this code snippet, initializing only the owning side is sufficient. But remember that the session cache itself maintains a reference to the parent until the session is closed.