Puedes usar algo como esto:
INSERT INTO users (user_id, name)
SELECT 1 + coalesce((SELECT max(user_id) FROM users WHERE name='Bob'), 0), 'Bob';
Pero tal consulta puede conducir a una condición de carrera. Asegúrese de estar en una transacción y de bloquear la tabla de usuarios antes de ejecutarla. De lo contrario, podrías terminar con dos Bobs con el mismo número.