en SQL server los datos primero se almacenan en el log (bitacora) para en caso de caida poder recuperar los datos ya que escribir en el log es infinitamente más rápido.
Cuando haces un checkpoint te aseguras que los datos del log se escriben en disco duro.
Cuando haces un commit transaction te aseguras de que esos datos del disco duro son permanentes (si tienes una transacción abierta puedes deshacer los cambios con rollback transaction)
Nota que el rollback deshace fisicamente los registros escritos en el disco duro ejecutando la acción inversa a la que se realizó anteriormente.
Sin embargo en caso de que no haya habido un commit en el momento de hacer rollback esta última operación no es necesaria ya que no se ha escrito nada en el disco duro, basta con borrar el log.