Flush will be called before the transaction is comitted:
Quote:
flush
public void flush()
throws HibernateException
Force this session to flush. Must be called at the end of a unit of work, before commiting the transaction and closing the session (depending on flush-mode, Transaction.commit() calls this method).
Flushing is the process of synchronizing the underlying persistent store with persistable state held in memory.
http://www.hibernate.org/hib_docs/v3/api/index.html
You might want to take a look at the JavaDoc for the Hibernate3 FlushMode
http://www.hibernate.org/hib_docs/v3/api/index.html