Primeiro, como dito em outro post, use o InnoDB. É o mecanismo de armazenamento padrão a partir do MySQL 5.5 e é mais robusto.
Segundo, veja esta página:http:// dev.mysql.com/doc/refman/5.5/en/innodb-locking-reads.html
Você deve usar um SELECT ... FOR UPDATE para evitar que outras conexões leiam a linha que você está prestes a atualizar até que sua transação seja concluída:
START TRANSACTION;
SELECT value INTO @value
FROM mytable
WHERE id = 5
FOR UPDATE;
UPDATE mytable
SET value = value + 1
WHERE id = 5;
COMMIT;
Isso é melhor do que bloquear a tabela porque o InnoDB faz bloqueios em nível de linha. A transação acima bloquearia apenas as linhas onde id =5... então outra consulta trabalhando com id =10 não seria retida por esta consulta.