Składnia select . . . for update
blokuje rekordy w tabeli, aby przygotować się do aktualizacji. Kiedy wykonujesz agregację, zestaw wyników nie odnosi się już do oryginalnych wierszy.
Innymi słowy, w bazie danych nie ma rekordów do aktualizacji. Jest tylko tymczasowy zestaw wyników.