code: func (m *Memory) PutRange(ctx context.Context, items []backend.Item) error {
  	for i := range items {
  		if items[i].Key == nil {
  			return trace.BadParameter("missing parameter key in item %v", i)
  		}
  	}
  	m.Lock()
  	defer m.Unlock()
  	m.removeExpired()
  	for _, item := range items {
  		event := backend.Event{
  			Type: backend.OpPut,
  			Item: item,
  		}
  		if !m.Mirror {
  			event.Item.ID = m.generateID()
  		}
  		m.processEvent(event)
  		if !m.EventsOff {
  			m.buf.Push(event)
  		}
  	}
  	return nil
  }
docs: // PutRange puts range of items into backend (creates if items does not
  // exists, updates it otherwise)