I am using user emails as the login (ie using their email as their username). I’m not entirely sure how to handle a situation in which the user wants to change their email (which is their login), but makes a mistake entering the new email address, and as a result is locked out of their account (since there is no email verification when using the API to update the user).
The best solution would be for the user to have the possibility to set also a secondary email in case he will not have access to the primary one.
This can be done from the Classic UI admin panel (if you are on Developer Console, you can switch to Classic UI from top right corner) by going to Settings >> Customization >> Optional User Account Fields.