Appending is not a documented concurrency guarantee
Google's Sheet.appendRow reference describes appending to the bottom of the current data region. It does not promise that concurrent callers cannot lose a write. Our earlier version claimed that guarantee; that claim was unsupported.
If two executions read the same last row before either writes, a getLastRow() + setValues() sequence can select the same destination. The example acquires a script lock before reading the destination or writing. Both entry points use the same lock, and pending spreadsheet changes are flushed before release.
A script lock coordinates only executions in the same script project that acquire that lock. It does not block manual edits, independent script projects, or external API requests. It provides neither rollback nor exactly-once delivery. A failed operation may need inspection before retrying.