When MySQL says it locks for a thread, it means that it creates a lock on the table and gives ownership of that lock to the thread that issued it.
Anyway, like Brandon said: lock as little as possible, for the shortest possible time.
A lock will block all other queries, no just the insert/update ones.
Look at transactions in MySQL, or even better; look at postgreSQL, which is better all-round.