code: func (b *DynamoDBBackend) create(ctx context.Context, item backend.Item, mode int) error {
  	r := record{
  		HashKey:   hashKey,
  		FullPath:  prependPrefix(item.Key),
  		Value:     item.Value,
  		Timestamp: time.Now().UTC().Unix(),
  		ID:        time.Now().UTC().UnixNano(),
  	}
  	if !item.Expires.IsZero() {
  		r.Expires = aws.Int64(item.Expires.UTC().Unix())
  	}
  	av, err := dynamodbattribute.MarshalMap(r)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  	input := dynamodb.PutItemInput{
  		Item:      av,
  		TableName: aws.String(b.Tablename),
  	}
  	switch mode {
  	case modeCreate:
  		input.SetConditionExpression("attribute_not_exists(FullPath)")
  	case modeUpdate:
  		input.SetConditionExpression("attribute_exists(FullPath)")
  	case modePut:
  	default:
  		return trace.BadParameter("unrecognized mode")
  	}
  	_, err = b.svc.PutItemWithContext(ctx, &input)
  	err = convertError(err)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  	return nil
  }
docs: // create helper creates a new key/value pair in Dynamo with a given expiration
  // depending on mode, either creates, updates or forces create/update