The Core Service has a "Rollback" method:
VersionedItemData Rollback(
TcmUri id,
bool deleteVersions,
string comment,
ReadOptions readBackOptions
)
id - The identifier of the VersionedItemData to rollback. The identifier must be a TCM URI including the version to rollback to.
deleteVersions - Specifies whether to delete all versions after the given version or to create a new version which is a copy of the given version.
comment - Comment for the specified version. Usually used to list references to items that no longer exists. Maybe null or "".
readBackOptions - Specifies how the VersionedItemData is read back after rolling back. If the parameter is null, the object is not read back.