Recommendations: All these locks prevent dirty reads and non-repeatable reads on a given entity.
Optimistic locks enforce the lock as late as possible hoping nobody changes the data underneath while pessimistic locks enforce the lock right away and keep it till the transaction is committed.
API allows you to change the state of an entity, or in other words, to load and store objects.
You will find persistence with JPA easier to understand if you think about object state management, not managing of SQL statements.
There is an additional cascading mode used to describe orphan deletion (ie an object no longer linked to an owning object should be removed automatically by Hibernate. Check Hibernate Annotations's documentation for more information.
Hibernate offers more native cascading options, please refer to the Hibernate Annotations manual and the Hibernate reference guide for more informations.
The merge operation is clever enough to automatically detect whether the merging of the detached instance has to result in an insert or update. Hibernate provides more flush modes than the one described in the JPA specification.