If we look at how the Java SDK is implemented,
public boolean registerWorkflow(WorkflowDef workflowDef, boolean overwrite) {
try {
if (overwrite) {
metadataClient.updateWorkflowDefs(Arrays.asList(workflowDef));
} else {
metadataClient.registerWorkflowDef(workflowDef);
}
return true;
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
return false;
}
}
In contrast, for Python SDK, the overwrite flag is just passed to the backend and calls registerWorkflow regardless. However, the backend of registerWorkflow does not really handle override.