code: def has_conflicting_update(self, update):
          
          # we explicitly want a flat list of updates here, that's why we call iter_updates
          # with both `initial` and `scheduled` == False
          for _, _, _, updates in self.iter_updates(initial=False, scheduled=False):
              for _update in updates:
                  if (
                          update.requirement.key == _update.requirement.key and
                          (
                                  update.commit_message != _update.commit_message or
                                  update.requirement.latest_version_within_specs !=
                                  _update.requirement.latest_version_within_specs
                          )
                  ):
                      logger.info("{} conflicting with {}/{}".format(
                          update.requirement.key,
                          update.requirement.latest_version_within_specs,
                          _update.requirement.latest_version_within_specs)
                      )
                      return True
          return False
docs: Checks if there are conflicting updates. Conflicting updates are updates that have the
          same requirement but different target versions to update to.
          :param update: Update to check
          :return: bool - True if conflict found