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