code: @Override
      public Temporal addTo(Temporal temporal) {
          if (months != 0) {
              temporal = temporal.plus(months, MONTHS);
          }
          return temporal;
      }
docs: Adds this amount to the specified temporal object.
  <p>
  This returns a temporal object of the same observable type as the input
  with this amount added.
  <p>
  In most cases, it is clearer to reverse the calling pattern by using
  {@link Temporal#plus(TemporalAmount)}.
  <pre>
  // these two lines are equivalent, but the second approach is recommended
  dateTime = thisAmount.addTo(dateTime);
  dateTime = dateTime.plus(thisAmount);
  </pre>
  <p>
  Only non-zero amounts will be added.
  <p>
  This instance is immutable and unaffected by this method call.
  
  @param temporal  the temporal object to adjust, not null
  @return an object of the same type with the adjustment made, not null
  @throws DateTimeException if unable to add
  @throws UnsupportedTemporalTypeException if the MONTHS unit is not supported
  @throws ArithmeticException if numeric overflow occurs