I created a transaction like this :
$this->db->begin();
$topic = new Topic();
$topic->assign( $data );
$topic->save();
var_dump( $this->db->isUnderTransaction() ); // bool(true)
$this->db->rollback();
var_dump( $this->db->isUnderTransaction() ); // bool(false)
But, the database still changed and inserted a new line. The rollback method is not working.