docstr: add a new transition to the buffer
  
  :param obs_t: (Any) the last observation
  :param action: ([float]) the action
  :param reward: (float) the reward of the transition
  :param obs_tp1: (Any) the current observation
  :param done: (bool) is the episode done
docstr_tok: ["add","a","new","transition","to","the","buffer",":","param","obs_t",":","(","Any",")","the","last","observation",":","param","action",":","(","[","float","]",")","the","action",":","param","reward",":","(","float",")","the","reward","of","the","transition",":","param","obs_tp1",":","(","Any",")","the","current","observation",":","param","done",":","(","bool",")","is","the","episode","done"]
code: def add(self, obs_t, action, reward, obs_tp1, done):
      """
      add a new transition to the buffer
  
      :param obs_t: (Any) the last observation
      :param action: ([float]) the action
      :param reward: (float) the reward of the transition
      :param obs_tp1: (Any) the current observation
      :param done: (bool) is the episode done
      """
      idx = self._next_idx
      super().add(obs_t, action, reward, obs_tp1, done)
      self._it_sum[idx] = self._max_priority**self._alpha
      self._it_min[idx] = self._max_priority**self._alpha
  
imports: import random
  from typing import Optional, List, Union
  import numpy
  from stable_baselines.common.segment_tree import SumSegmentTree, MinSegmentTree
  from stable_baselines.common.vec_env import VecNormalize
label_desc: Use image node_id 2 for calling the PrioritizedReplayBuffer obj's underlying member method code with example usage: obj.add(obs_t, action, reward, obs_tp1, done) without return types