wrapped the create user operation with mysql transaction to avoid the case where requests coming to the server very close together cause multiple user profiles to be created pointing to the same user