Well, I think that I have found a solution, please to look at this code (objects have to be checked if they are null):
string culture = "en-US";
string aliasPath = "/";
string widgetName = "Image";
string zoneID = "Test";
CMS.PortalEngine.WidgetZoneTypeEnum zoneType = CMS.PortalEngine.WidgetZoneTypeEnum.None;
CMS.DocumentEngine.TreeProvider tree = new CMS.DocumentEngine.TreeProvider(CMSContext.CurrentUser);
CMS.DocumentEngine.TreeNode staticNode = tree.SelectSingleNode(CMSContext.CurrentSiteName, aliasPath, culture);
CMS.DocumentEngine.PageInfo pi = CMSWebPartPropertiesPage.GetPageInfo(staticNode.NodeAliasPath, staticNode.DocumentPageTemplateID, culture);
CMS.PortalEngine.PageTemplateInstance templateInstance = CMS.PortalControls.CMSPortalManager.GetTemplateInstanceForEditing(pi);
CMS.PortalEngine.WebPartInstance widgetInstance = = templateInstance.GetWebPart(templateInstance.GetWebPart("Image").InstanceGUID, widgetName);
CMS.PortalEngine.WebPartZoneInstance zone = templateInstance.GetZone(zoneID);
if ((zoneType == CMS.PortalEngine.WidgetZoneTypeEnum.None) && (zone != null))
{
zoneType = zone.WidgetZoneType;
}
widgetInstance.SetValue("Image", "image_url");
CMS.PortalControls.CMSPortalManager.SaveTemplateChanges(pi, templateInstance, zoneType, CMSContext.ViewMode, tree);