Catch Throwable inside transaction instead of Exception

This ensures that transactions roll back whether an Exception or an
Error is thrown.

Signed-off-by: Sean Corfield <sean@corfield.org>