Кудрявцев Дмитрий, 396гр. Storable(XML), Parallel, Proxy

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