code: func (svc *DynamoAccessor) Put(ctx context.Context, keyPath string, object interface{}) error {
  
  	// What's the type of the object?
  	if object == nil {
  		return errors.New("DynamoAccessor Put object must not be nil")
  	}
  	// Map it...
  	marshal, marshalErr := dynamodbattribute.MarshalMap(object)
  	if marshalErr != nil {
  		return marshalErr
  	}
  	// TODO - consider using tags for this...
  	_, idExists := marshal[attrID]
  	if !idExists {
  		marshal[attrID] = &dynamodb.AttributeValue{
  			S: aws.String(keyPath),
  		}
  	}
  	putItemInput := &dynamodb.PutItemInput{
  		TableName: aws.String(svc.dynamoTableName()),
  		Item:      marshal,
  	}
  	_, putItemErr := svc.dynamoSvc(ctx).PutItemWithContext(ctx, putItemInput)
  	return putItemErr
  }
docs: // Put handles saving the item