code: public function update(RepositoryInterface $repo, UpdateOperation $operation)
      {
          $initial = $operation->getInitialPackage();
          $target = $operation->getTargetPackage();
  
          $initialType = $initial->getType();
          $targetType = $target->getType();
  
          if ($initialType === $targetType) {
              $installer = $this->getInstaller($initialType);
              $installer->update($repo, $initial, $target);
              $this->markForNotification($target);
          } else {
              $this->getInstaller($initialType)->uninstall($repo, $initial);
              $this->getInstaller($targetType)->install($repo, $target);
          }
      }
docs: Executes update operation.
  
  @param RepositoryInterface $repo      repository in which to check
  @param UpdateOperation     $operation operation instance