Andrew,
I agree with your comments 100%. I went over my code last night for quite a few hours re-analyzing the design. I came to the conclusion that having locking/unlocking occur on a local database shouldn't impact performance. Your point:
I could even argue that from a mainenance point of view, it is easier for someone to maintain code if the locking is always happening, rather than the maintainer needing to determine what mode they are in
falls in line with the existing implementation of my code.
Thank you for your input.