It depends on your client.
My preference in a situation like this is that you have an app out there doing something they shouldn't be doing (changing this user_type for this user), so they should end up getting an error.
Using a trigger will hide this issue.
Using a constraint will highlight it to the app making the problematic UPDATE query.
Now, if the client is adamant that they cannot (or will not) make changes to their app, then your only option is a trigger to "fix" the issue. But I would consider that a bit of sticky tape over the problem, rather than an actual fix.
Obviously, bear in mind I do not know your requirements, or service deals or anything like that.
I'm simply taking this from the position that something is setting user_id 1003's user_type to something other than 200, and it shouldn't be. It's quite possible (even likely) that there are other things in play here that I do not know about.