def _setdefault(self, key, default=None):
        """
        If ``key`` is not present, set it as ``default`` and return it.  If
        ``key`` is present, return its value.

        :param key: Key to add to Zookeeper
        :type key: string
        :param default: Default object to return if ``key`` is present.
        :type default: object

        Will retry trying to get or create a node based on the "retry" config
        from the Kazoo client.
        """
        return self.connection.retry(self.__inner_set_default, key, default)