Where is documented that no other transaction can update a locked row? In the manual for InnoDB Locking, it is stated how shared and exclusive locks work.

As I found out by trial and error, both LOCK IN SHARE MODE and FOR UPDATE ensure no other transaction can update the rows that are selected. 

What I found in the documentation, is that if a row is locked FOR UPDATE then no other transaction can get a LOCK until the transaction is commited or rolled back. Also if there are multiple LOCK IN SHARE MODE then no updated are possible. But I did not find that if there is any LOCK on a row, than no transaction (even without LOCK) can update the row.

I did not find that rule in the docs. Is it missing, or did I just overread it?
You say:


  if there is any LOCK on a row, [then] no transaction (even without LOCK) can update the row


On the page you have linked to you can read that


  An exclusive (X) lock permits the transaction that holds the lock to update or delete a row


which means that before a transaction can update a row it must acquire an X lock on it, which is impossible1 if there is already an S or X lock on that row placed by a locking read in another transaction.



1 -- because X, which as we know stands for "exclusive",  is incompatible with any other lock.