public function dontHaveTermInDatabase(array $criteria, $purgeMeta = true)
    {
        $termRelationshipsKeys = ['term_taxonomy_id'];

        $termTableCriteria = array_intersect_key($criteria, array_flip($this->termKeys));
        $termTaxonomyTableCriteria = array_intersect_key($criteria, array_flip($this->termTaxonomyKeys));

        if ($purgeMeta) {
            $ids = false;

            if (!empty($termTableCriteria)) {
                $ids = $this->grabAllFromDatabase($this->grabTermsTableName(), 'term_id', $criteria);
            } elseif (!empty($termTaxonomyTableCriteria)) {
                $ids = $this->grabAllFromDatabase($this->grabTermTaxonomyTableName(), 'term_id', $criteria);
            }

            if (!empty($ids)) {
                foreach ($ids as $id) {
                    $this->dontHaveTermMetaInDatabase($id);
                }
            }
        }

        $this->dontHaveInDatabase($this->grabTermsTableName(), $termTableCriteria);
        $this->dontHaveInDatabase($this->grabTermTaxonomyTableName(), $termTaxonomyTableCriteria);
        $this->dontHaveInDatabase(
            $this->grabTermRelationshipsTableName(),
            array_intersect_key($criteria, array_flip($termRelationshipsKeys))
        );
    }