Вы можете выбрать и обновить в одной инструкции, которая должна выполняться атомарно:
UPDATE tbl SET status=1, counter=counter+1 WHERE status=0;
Я не знаю, что вы хотите на шаге 3, так как задействовано более одного идентификатора. Вы хотите таблицу строк идентификатора, как из инструкции SELECT? Если это так, вы можете использовать хранимую процедуру или использовать SELECT ... LOCK IN SHARE MODE