The only thing I don't like about this at first glance is there is no check to see if the data actually changed. So if I issue the statement...
SET user_name = user_name
WHERE user_id = 'Fred1234';
...then the code fragment supplied will say the column was updated, when in fact nothing changed.