Answer
This is worth checking separately from the UI-level Query grant: also review whether the user's permission set is granting database-object-level access (Insert/Update/Delete rights on the underlying API/table objects for that Logical Unit) — because even with the presentation object itself correctly set to Query-only, a broader database-object grant on the same LU can independently allow write actions regardless of what the screen-level Query setting suggests. Genuinely locking a screen down to read-only requires both layers (the presentation object grant and the underlying database object grants) to be restricted consistently, not just the presentation object grant alone.