Try it again, and when you get the row id, open up SQL Plus and execute the following:
select *
from IMS_MARCA
where rowid = 'THE ROW ID HERE'
and see what you get. Chances are the rowid has become invalid. When DOA loads an editable result set into memory, it loads the row id's with it and uses them to send updates to the server. If a row is nearly at the capacity of the block, and more data is inserted into the row, then Oracle may migrate the row to a new location, thus invalidating the rowid fetched earlier.
You may try your own update on the table using a true key name instead of the rowid. That way, no matter where the row is, it will get updated.
Use the following syntax:
update IMS_MARCA
set somecolumn = 'newvalue'
where somecolum = 'the key'
Make sure to commit your changes.