     */
     public func insert(db: Database) throws {
         let dataMapper = DataMapper(self)
-        let changes = try dataMapper.insert(db)
+        let changes = try dataMapper.insertStatement(db).execute()
         
         // Update RowID column if needed
         if let primaryKey = self.dynamicType.databaseTable?.primaryKey, case .RowID(let rowIDColumn) = primaryKey {

              updated.
    */
    public func update(db: Database) throws {
        let changes = try DataMapper(self).update(db)
        
        // if no row was updated, we have a problem.
        guard changes.changedRowCount > 0 else {
            throw RowModelError.RowModelNotFound(self)
        }
        

            
            // Delete
            let deleteStatement = try DataMapper.deleteStatement(db, tableName: databaseTable.name, conditionColumns: Array(primaryKeyDictionary.keys))
            deleteStatement.arguments = QueryArguments(primaryKeyDictionary.values)
            return deleteStatement
        }
        
        /// SELECT
        func reloadStatement(db: Database) -> SelectStatement {
            // fetchOneRow requires strongPrimaryKeyDictionary
            guard let primaryKeyDictionary = strongPrimaryKeyDictionary else {
                fatalError("Invalid primary key in \(rowModel)")
