Reimplemented students' demo.
Transactions now throw commit exceptions after rolling back.