Debería hacer el método de "excepción de prueba y captura" simplemente porque tiene que hacerlo de todos modos.
Si comprueba primero, no hay nada que impida que alguien inserte una fila para ese usuario entre su comprobación y su inserción, en cuyo caso el usuario estará en la tabla aunque su comprobación no lo haya encontrado.
Aparte de poder ejecutar la verificación e inserción dentro de algún tipo de transacción (para que nadie más pueda insertar ese usuario en el ínterin). no puede estar seguro de que la no excepción funcionará.
Y aunque muchos DBMS brindan soporte transaccional, no conozco ninguno eso bloqueará una fila que aún tiene que insertar :-)
Por supuesto, si su aplicación está diseñada de tal manera que solo su proceso insertará usuarios (y serializará), puede usar el método de verificación primero. Pero estaría poniendo muchos comentarios en el sentido de que deberá revisarse si alguna vez aumenta la escala.