Ein Cursor führt effektiv ein SELECT aus und lässt Sie dann über die Ergebnismenge iterieren, die in einem Snapshot des DB-Status gespeichert wird. Da Ihre Ergebnismenge bereits abgerufen wurde, wird sie von der UPDATE-Anweisung nicht beeinflusst. (Wenn Sie die Dinge anders handhaben würden, müssten Sie die Abfrage jedes Mal erneut ausführen, wenn Sie den Cursor bewegen!)
Siehe:
http://www.techonthenet.com/oracle/cursors/declare.php