'add to self the product of (p)*(coeff*x0**i0*x1**i1*...)
unless self is a generator -- then just return the sum of the two.
mc is a tuple, (monom, coeff), where monomial is (i0, i1, ...)
Examples
>>> from sympy.polys.rings import ring
>>> from sympy.polys.domains import ZZ
>>> _, x, y, z = ring(\'x, y, z\', ZZ)
>>> p1 = x**4 + 2*y
>>> p2 = y + z
>>> m = (1, 2, 3)
>>> p1 = p1._iadd_poly_monom(p2, (m, 3))
>>> p1
x**4 + 3*x*y**3*z**3 + 3*x*y**2*z**4 + 2*y'

def _iadd_poly_monom(self, p2, mc):

    p1 = self
    if (p1 in p1.ring._gens_set):
        p1 = p1.copy()
    (m, c) = mc
    get = p1.get
    zero = p1.ring.domain.zero
    monomial_mul = p1.ring.monomial_mul
    for (k, v) in p2.items():
        ka = monomial_mul(k, m)
        coeff = (get(ka, zero) + (v * c))
        if coeff:
            p1[ka] = coeff
        else:
            del p1[ka]
    return p1
