<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def update_sum(self, assump):
 """ The method is used to increase the bound for a given totalizer sum. The totalizer object is identified by the input parameter ``assump``, which is an assumption literal associated with the totalizer object. The method increases the bound for the totalizer sum, which involves adding the corresponding new clauses to the internal SAT oracle. The method returns the totalizer object followed by the new bound obtained. :param assump: assumption literal associated with the sum :type assump: int :rtype: :class:`.ITotalizer`, int Note that if Minicard is used as a SAT oracle, native cardinality constraints are used instead of :class:`.ITotalizer`. """


        # getting a totalizer object corresponding to assumption
        t = self.tobj[assump]

        # increment the current bound
        b = self.bnds[assump] + 1

        if self.solver != 'mc':  # the case of standard totalizer encoding
            # increasing its bound
            t.increase(ubound=b, top_id=self.topv)

            # updating top variable id
            self.topv = t.top_id

            # adding its clauses to oracle
            if t.nof_new:
                for cl in t.cnf.clauses[-t.nof_new:]:
                    self.oracle.add_clause(cl)
        else:  # the case of cardinality constraints represented natively
            # right-hand side is always equal to the number of input literals
            rhs = len(t.lits)

            if b < rhs:
                # creating an additional bound
                if not t.rhs[b]:
                    self.topv += 1
                    t.rhs[b] = self.topv

                # a new at-most-b constraint
                amb = [[-t.rhs[b]] * (rhs - b) + t.lits, rhs]
                self.oracle.add_atmost(*amb)

        return t, b