Поскольку SPL-списки не обеспечивают неотъемлемую поддержку транзакций, вам придется самостоятельно выполнять операции отката.
В обоих случаях использования 1 и 2 самый простой способ смоделировать транзакцию - это прочитать состояние любого элемента списка, который вы изменяете, до выполнения обновления, а затем записать это состояние обратно, если вы обнаружите сбой. Это не идеальное решение, так как достаточно серьезная ошибка также может помешать вашему откату обновлений. Это цена, которую вы платите за отсутствие транзакций поддержки хранилища данных.
При этом, хотя многие клиенты будут запрашивать хранение критически важных для бизнеса данных в списках SPList, я бы сказал, что ваша задача - убедить их, что это не очень хорошая идея, и что транзакционные базы данных, к которым обращаются через веб-сервисы, являются гораздо более безопасный SP-совместимый способ хранения важных данных.