use a transaction when saving new user