I have never actually used this function but i would probably solve this by a conditional statement to define whether the value is already defined or successfully set.
If ( get_user_meta($uid, "mykey", true) == "myvalue" ) {
$status = true;
} else {
$status = update_user_meta($uid, "mykey", "myvalue");
}
if ( $status == true ) {
// Function called on sucess
}