add transactional annotation