Consistently use a transaction for each callback method