"HERE are 3 basic approaches: "
Yup, two wrong ones and the correct one, which luckily you also mention:
" 3. Set the column in question as UNIQUE, do the insert, and if the insert fails don't sweat it, just inform the user of a duplicate value."
Every other method is un-acceptable because they do not guarantee uniqueness unless you put an exclusive lock on the table during the entire operation, and an exclusive lock is un-acceptable in a production environment (much too slow)