> There were other JDBC clients but they never
> lock any tables. They all used transactions with the serializable isolation level.
If you have concurrent access and some isolation you have locking.
If two inserts/updates try to change the same data (even via
triggers/rules) you get a failed commit.
maybe tis helps