If you have ZFS as your backing device, e.g. on another machine, you just snapshot your dataset (which is by definition immutable) and you can always show if a file was changed (zfs diff) and revert the dataset so, the backup is immutable.
We have multiple remote ZFS backup boxes in production, that export the dataset via NFS (server) to the nodes (client), which is used for the backup. You can then do timed snapshots on the storage side or use a snapshot-file, that its touching is automatically detected on the storage side and a snapshot is created. This can be hooked into the backup from PVE (or any other software) in order to create the snapshot (so the immutability is implicit). There is no direct SSH connection between the boxes, so you cannot delete the snapshots from your client side.