Every operation done with a session has an implicit transaction associated (even if you didn't create one yourself).
From the Session API Documentation (
http://www.hibernate.org/hib_docs/v3/ap ... ssion.html):
"If the Session throws an exception, the transaction must be rolled back and the session discarded. The internal state of the Session might not be consistent with the database after the exception occurs."
From that phrase, I understand that you should call Session.getTransaction().rollback(), because your Session might have wrong data in it.
Hope it helps.
Pd: and answering your question, the buyer details should be still in the session, in spite of the exception.