GConf has a a concept of a set of changes which can be applied or reverted at once: GConfChangeSet (GConf doesn't actually apply changes atomically, which is one of its shortcomings).
Instead of a separate object to represent a change set, GSettings has a
'delayed-apply' mode, which can be turned on for a GSettings object by
g_settings_delay(). In this mode, changes done to the GSettings
object are not applied - they are still visible when calling
on the same object, but not to other GSettings instances
or even other processes.
To apply the pending changes all at once (GSettings does
atomicity here), call
g_settings_apply(). To revert the pending changes,
g_settings_revert() or just drop the reference to the GSettings object.