added transaction.abort function