How to limit rows in PostgreSQL update statement

You need to search for the desired rows with a subquery, and use the primary key of the table to relate those rows to the table in the UPDATE statement.

In general, rownum can be replaced with the row_number() window function (see, e.g., Using window functions in an update statement), but for this case, it is easier to just use limit:

UPDATE employees
SET commission_pct = 0
WHERE id IN (SELECT id
             FROM employees
             WHERE commission_pct IS NULL
             LIMIT 10000);

If the exact number of rows updated is not critical and the goal is just to keep the transaction durations brief you can use a random expression or an expression involving some uniformly distributed column to limit the number of rows updated.

These expressions will need to be modified when the query is repeated.

values of id.

UPDATE employees
SET commission_pct = 0
WHERE commission_pct is null and id < 100000

mod 100 of id

UPDATE employees
SET commission_pct = 0
WHERE commission_pct is null and id % 100 = 0

random selection

UPDATE employees
SET commission_pct = 0
WHERE commission_pct is null and random() < 0.01

"birthday"

UPDATE employees
SET commission_pct = 0
WHERE commission_pct is null and 
 day_of_birth - date_trunc(year,day_of_birth)::date = 0