Save the given card to the database. This calls each save event hook
        on the save string before commiting it to the database.

def save_card(self, card, cache=False):
        """
        Save the given card to the database. This calls each save event hook
        on the save string before commiting it to the database.
        """
        if cache:
            self.cache_card(card)
        carddict = card.save()
        with sqlite3.connect(self.dbname) as carddb:
            carddb.execute("DELETE from CARDS where code = ?",
                           (carddict["code"],))
            carddb.execute("INSERT INTO CARDS VALUES(?, ?, ?, ?, ?)",
                           [carddict[key] if isinstance(carddict[key], str)
                            else str(carddict[key]) for key in FIELDS])