code: def decide(self, package):  # type: (Package) -> None
          
          # When we make a new decision after backtracking, count an additional
          # attempted solution. If we backtrack multiple times in a row, though, we
          # only want to count one, since we haven't actually started attempting a
          # new solution.
          if self._backtracking:
              self._attempted_solutions += 1
  
          self._backtracking = False
          self._decisions[package.name] = package
  
          self._assign(
              Assignment.decision(package, self.decision_level, len(self._assignments))
          )
docs: Adds an assignment of package as a decision
          and increments the decision level.