The <update>
basically pulls in another handle.
Assume you have this:
<layout>
<foo>
<reference name="header">
<block type="cms/block" name="some_block" as="someBlock">
<action method="setBlockId"><block_id>some_block</block_id></action>
</block>
</reference>
<reference name="left">
<block type="cms/block" name="some_totally_different_block" as="someTotallyDifferentBlock">
<action method="setBlockId"><block_id>some_totally_different_block</block_id></action>
</block>
</reference>
</foo>
<bar>
<update handle="foo" />
<reference name="header">
<block type="cms/block" name="some_other_block" as="someOtherBlock">
<action method="setBlockId"><block_id>some_other_block</block_id></action>
</block>
</reference>
</bar>
</layout>
The resulting XML for bar
would be:
<layout>
<bar>
<reference name="header">
<!-- Start of part pulled in from foo -->
<block type="cms/block" name="some_block" as="someBlock">
<action method="setBlockId"><block_id>some_block</block_id></action>
</block>
<!-- End of part pulled in from foo -->
<block type="cms/block" name="some_other_block" as="someOtherBlock">
<action method="setBlockId"><block_id>some_other_block</block_id></action>
</block>
</reference>
<!-- Start of part pulled in from foo -->
<reference name="left">
<block type="cms/block" name="some_totally_different_block" as="someTotallyDifferentBlock">
<action method="setBlockId"><block_id>some_totally_different_block</block_id></action>
</block>
</reference>
<!-- End of part pulled in from foo -->
</bar>
</layout>
tl;dr: The update
handle is basically a "merge this layout with my current layout".