class_docstr: This is the proportional sampling variant of the prioritized experience replay as described
  in https://arxiv.org/pdf/1511.05952.pdf.
docstr: Store a new transition in the memory.
  :param transition: a transition to store
  :return: None
docstr_tok: ["Store","a","new","transition","in","the","memory",".",":","param","transition",":","a","transition","to","store",":","return",":","None"]
code: def store(self, transition: Transition, lock=True) -> None:
      """
      Store a new transition in the memory.
      :param transition: a transition to store
      :return: None
      """
      # Calling super.store() so that in case a memory backend is used, the memory backend can store this transition.
      super().store(transition)
  
      if lock:
          self.reader_writer_lock.lock_writing_and_reading()
  
      transition_priority = self.maximal_priority
      self.sum_tree.add(transition_priority**self.alpha, transition)
      self.min_tree.add(transition_priority**self.alpha, transition)
      self.max_tree.add(transition_priority, transition)
      super().store(transition, False)
  
      if lock:
          self.reader_writer_lock.release_writing_and_reading()
  
imports: import operator
  import random
  from enum import Enum
  from typing import List, Tuple, Any
  import numpy
  from rl_coach.core_types import Transition
  from rl_coach.memories.memory import MemoryGranularity
  from rl_coach.memories.non_episodic.experience_replay import ExperienceReplayParameters, ExperienceReplay
  from rl_coach.schedules import Schedule, ConstantSchedule
label_desc: Use image node_id 5 for calling the PrioritizedExperienceReplay obj's underlying member method code with example usage: obj.store(transition, lock) without return types