It is not needed.
But, I chose to lock the entire database when I do any operation.
This seems like a dumb thing at first, but it saves u a lot of scenario
testing for your locking scheme.
Furthermore, good table based locking (not the one we are implementing) is FASTER than record based locking.
This is because of the lack of overhead on row level locks.
So even though it is not needed to lock when reading, I would (and do).
Document your decisions well !
Good luck