use transaction when creating users