def _add_to(self, db, index, item, default=OOSet):
        """
        Add `item` to `db` under `index`. If `index` is not yet in `db`, create
        it using `default`.

        Args:
            db (dict-obj): Dict-like object used to connect to database.
            index (str): Index used to look in `db`.
            item (obj): Persistent object, which may be stored in DB.
            default (func/obj): Reference to function/object, which will be
                used to create the object under `index`.
                Default :class:`OOSet`.
        """
        row = db.get(index, None)

        if row is None:
            row = default()
            db[index] = row

        row.add(item)
Add `item` to `db` under `index`. If `index` is not yet in `db`, create
        it using `default`.

        Args:
            db (dict-obj): Dict-like object used to connect to database.
            index (str): Index used to look in `db`.
            item (obj): Persistent object, which may be stored in DB.
            default (func/obj): Reference to function/object, which will be
                used to create the object under `index`.
                Default :class:`OOSet`.