         // MARK: - CRUD
         
         /// INSERT
-        ///
-        /// Returns (rowIDColumn, insertedRowID) if the row model has a
-        /// currently nil RowID primary key, and nil otherwise.
         func insert(db: Database) throws -> UpdateStatement.Changes {
             // INSERT
             let insertStatement = try DataMapper.insertStatement(db, tableName: databaseTable.name, insertedColumns: Array(storedDatabaseDictionary.keys))

    - throws: A DatabaseError whenever a SQLite error occurs.
    */
    public func insert(db: Database) throws {
        try withDataMapper { dataMapper -> Void in
            let changes = try dataMapper.insert(db)
            
            // Update RowID column if needed
            if let primaryKey = self.dynamicType.databaseTable?.primaryKey, case .RowID(let rowIDColumn) = primaryKey {
                guard let rowID = dataMapper.storedDatabaseDictionary[rowIDColumn] else {
                    fatalError("\(self.dynamicType).storedDatabaseDictionary must return the value for the primary key `(rowIDColumn)`")
                }
                if rowID == nil {
                    setDatabaseValue(DatabaseValue.Integer(changes.insertedRowID!), forColumn: rowIDColumn)
                }
            }
            
            edited = false
        }
    }
    
    /**

            let sql = "SELECT * FROM \(tableName.quotedDatabaseIdentifier) WHERE \(conditionSQL)"
            return db.selectStatement(sql)
        }
    }
}

