This is not correct. An update cursor must be based
on a simple select. An this select could only include
a single table.
So you simply have to declare a second cursor for
the select on the other table. This second cursor works independently from your first update cursor, so you
don't have to move your first cursor away from that row.
If for any other reason you need to move your first
update cursor away from that row and want to ensure
that the row will still be locked, there are three possibilities
to get the job done:
1) set isolation to repeatable read
-> this places a shared lock on each row fetched and
the lock will be held until the end of the transaction
2) set isolation to cursor stability retain update locks
-> this syntax is also possible with 'committed read'.
It ensures that update locks are not removed if
you move the update cursor away from that row.
3) make a dummy update of the row
-> this would place an exclusive lock on the row,
you could move your cursor away from that row,
the exclusive lock is held until the end of the
transaction
Good luck.