fixed multiple rollbacking
added Repository::handleException() for custom exception handling during a transaction