A
UPDATE
está sendo executado na transação - é um atomic
operação, o que significa que, se uma das linhas falhar (por causa da restrição exclusiva, por exemplo), ela não atualizará nenhuma das 5.000 linhas. Esta é uma das propriedades ACID de um banco de dados transacional. Por causa disso, o
UPDATE
mantenha um bloqueio em todas as linhas para toda a transação. Caso contrário, outra transação pode atualizar ainda mais o valor de uma linha, com base em seu valor atual (digamos, atualizar registros definir valor =valor * '2'). Essa instrução deve produzir resultados diferentes dependendo se a primeira transação é confirmada ou revertida. Por isso, ele deve aguardar a primeira transação para concluir todas as 5.000 atualizações. Se você quiser liberar os bloqueios, basta fazer a atualização em lotes (menores).
P.S.
autocommit
controla se cada instrução é emitida na própria transação, mas não afeta a execução de uma única consulta