Seems you are not using the CRUDII aia / blocks... ?
In essence, to delete a record/row, you need to make sure you have the correct row with the correct data (that no-one else has deleted or added records/rows), if these match, then delete that row. This is all tested with the script, which check the row number and the first entry (cell content) in that row, against the data you selected to delete in the app.
It seems I have gone backwards now. I cannot even safe a record to the gsheet.
Will have to dissect a little more, get that function running, and then try again with the delete/update. I need to brush up on JS some more.
The account owner of the google apps script would need to create a spreadsheet for each user, and provide the spreadsheet file ID to each user. All the spredsheets would reside on the account owners google drive.