В таком виде все неразрешимо. То, что транзакция в вызываемой программе небольшая, никак не отменяет объемлющей транзакции в вызывающей программе. Тут или увеличивать -L, или отменять транзакцию при вызове.
Вообще, кажется, это считается плохим стилем - блокировать много записей. И, хотя наверно есть задачи, когда это необходимо, не факт, что этот случай именно тот. Ну, или -L отращивать