Actually I think we could solve this by simply doing something like: 

    //do the insert
    if(!$this->statement->execute(array_values($item))) {
        throw new WriterException('Item write failed');
    }

probably same for creating the statement. Then the user can just enable  skipItemOnFailure if they don't care about errors.