Does AR::Base#save update the entire object tree on update?

Wes Gamble wrote:

On update (new_record? == false), if I call save on an AR::Base
descendant, is it guaranteed that the entire object graph is traversed
and each of the children is saved?

What I'm seeing is give an arbitrarily complex object graph of children
which belong to an object, when I save the object, the only objects
which get saved automatically are the children which are specified using
has_one, not any of the children specified using has_many.

New has_many children will be automatically saved (created).
This will continue down the association levels as long as
there's an unbroken line of un-saved children.

Existing children are not updated.