How to LOCK/BLOCK selected row in table to be ReadOnly?
When would you unlock it?

A typical pattern is:

BEGIN;
SELECT ... FOR UPDATE;
scratch your head, then eventually
UPDATE that row (or not)
COMMIT;


That keeps anyone else from messing with the row, but they can read it.  It's not quite "ReadOnly", and the "lock" is released at the COMMIT.

If this does not suffice, please describe your use case more thoroughly.