If the model is new a record gets created in the database, otherwise the
existing record gets updated.

By default, save always
run validations. If any of them fail the action is cancelled and save returns
false. However, if you supply :validate => false, validations
are bypassed altogether. See ActiveRecord::Validations for
more information.

There’s a series of callbacks associated with save. If any of the
before_* callbacks return false the action is cancelled
and save
returns false. See ActiveRecord::Callbacks for
further details.