You have already found out that using
update_user_meta() if the meta field for the user does not exist, it will be added. ie
update_user_meta() can do the task of
However, the difference between them is the
returns False if no change was made (if the new value was the same as previous value) or if the update failed, umeta_id if the value was different and the update a success.
NOTE: as of v3.4.2 it returns the umeta_id on success (instead of true) and false on failure
return Primary key id for success. No value (blank) for failure. Primary key id for success.