If I SELECT... FOR UPDATE
a row in a transaction, it will obviously block the row from being written to, but will it disallow reads as well? I'd prefer to still be able to read from the row, so if the answer is yes, can you provide a solution to work this?
You can read just fine. There are lock modes that prevent reading but this isn't one of them.
http://www.postgresql.org/docs/current/static/explicit-locking.html