When the final implementation is in place, when a username gets set, that username is reserved and is prevented from being used by another user.  With that in mind, might want to move the throws UserNameConflictException to this method.  Since the name is reserved, when its time to login, we already know we're good to go.