Документация просто говорит о том, что блокировка для строк читается без исключений из объединенных таблиц, поэтому она должна быть для всех записей во всех объединенных таблицах. Если вы хотите заблокировать только строки в одной из таблиц, вы можете сделать это отдельно: «SELECT 1 FROM keytable WHERE ... FOR UPDATE».
Тем не менее, это не нужно, чтобы просто предотвратить обновление между SELECT и UPDATE. Блокировка чтения на SELECT уже делает это. Целью FOR UPDATE было бы предотвратить чтение строк другой транзакцией и, следовательно, потенциально вызвать взаимоблокировку, поскольку UPDATE нельзя применить, пока другая транзакция не снимет блокировку чтения.